package com.teradata.params.core.shiro.factroy;

import com.teradata.params.core.model.App;
import com.teradata.params.core.shiro.ShiroApp;
import org.apache.shiro.authc.SimpleAuthenticationInfo;

import java.util.List;

public interface IShiro {

    /**
     * 根据账号获取登录用户
     *
     * @param appId APP账号
     */
    App app(String appId);

    /**
     * 根据系统用户获取Shiro的用户
     *
     * @param app 系统用户
     */
    ShiroApp shiroApp(App app);

    /**
     * 获取权限列表通过角色id
     *
     * @param roleId 角色id
     */
    List<String> findPermissionsByRoleId(Integer roleId);

    /**
     * 根据角色id获取角色名称
     *
     * @param roleId 角色id
     */
    String findRoleNameByRoleId(Integer roleId);

    /**
     * 获取shiro的认证信息
     */
    SimpleAuthenticationInfo info(ShiroApp shiroApp, App app, String realmName);

}
